Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2
Loading...
Searching...
No Matches
KvmManager.idl
1#ifndef __RADM_KVM_MANAGER_IDL__
2#define __RADM_KVM_MANAGER_IDL__
3
4#include <UserEvent.idl>
5#include <DsamDeviceManager.idl>
6#include <KeySetManager.idl>
7#include <KvmDevice.idl>
8#include <KvmPort.idl>
9#include <KvmChannel.idl>
10#include <PowerDeviceManager.idl>
11#include <PortGroupManager.idl>
12#include <AutoScan.idl>
13#include <PowerSupply.idl>
14#include <LocalPort.idl>
15#include <TieredDevice.idl>
16#include <TieredDevicePort.idl>
17
18module radm {
19
20 interface KvmManager {
21 constant int ERR_INVALID_ARGUMENT = 1;
22 constant int ERR_VM_SHARE_INACCESSIBLE = 2;
23 constant int ERR_IMAGE_NOT_USABLE = 3;
24
25 enumeration ResetPinMode {
26 FACTORY_RESET, ///< Trigger a factory reset
27 ADMIN_PASSWORD_RESET, ///< Trigger a reset of the admin password
28 DISABLE_ALL_RESET ///< Disable local reset
29 };
30
31 enumeration ControlPriority {
32 PRIORITY_NONE, ///< No prioritization, first operator gets control
33 PRIORITY_LOCAL, ///< Prioritize operation via locally attached input device
34 PRIORITY_REMOTE ///< Prioritize operation via remote KVM client
35 };
36
37 structure SecuritySettings {
38 boolean pcShare; ///< Whether PC sharing is enabled
39 int pcShareIdleTimeout; ///< PC share idle timeout (in seconds)
40 boolean vmShare; ///< Whether virtual media sharing is enabled
41 boolean kvmEncryption; ///< Whether or not KVM client traffic is encrypted
42 boolean disableLocalPortOutput; ///< Disable video output of locally attached monitors
43 ControlPriority controlPriority; ///< Priority handling for simultaneous keyboard/mouse operation
44 ResetPinMode resetPinMode; ///< Handling of pin-hole reset on device
45 boolean sshDpa; ///< Whether SSH direct port access is enabled
46 boolean urlDpa; ///< Whether direct KVM port access via URL is allowed
47 boolean allowIFrame; ///< Allow embedding KVM GUI and HKC client as iframe in other web pages
48 };
49
50 /** Data structure for a preconfigured virtual media ISO file on an SMB share */
52 string host; ///< SMB server host name
53 string shareName; ///< SMB share name
54 string imagePath; ///< Path of ISO image on the SMB share
55 boolean enableSMBv1; ///< Whether to allow SMBv1
56 };
57
58 enumeration KvmAccessMode {
59 FULL_ACCESS, ///< Both viewing and control are possible
60 VIEW_ONLY, ///< Only viewing is possible
61 DENY ///< Neither viewing nor control are possible
62 };
63
64 structure KvmAccessFlags {
65 KvmAccessMode localAccess; ///< Access mode for local operation
66 KvmAccessMode remoteAccess; ///< Access mode for remote operation
67 };
68
69 structure CimFirmwareInfo {
70 string cimType; // matches CimInfo.cimType
71 string hwVersion; // matches CimInfo.hwVersion
72 string fwVersion; // 'output value': FW version for combination above
73 };
74
76 int port; ///< CIM connected port
77 string name; ///< CIM name
78 string type; ///< CIM type
79 time timestamp; ///< Timestamp when the update was started
80 string oldVersion; ///< Previous firmware version
81 string imageVersion; ///< Firmware version of update image
82 boolean successful; ///< Whether update was successful
83 };
84
86 READ_WRITE, ///< read-write virtual media access allowed
87 READ_ONLY, ///< only read-only virtual media access allowed
88 VM_DENY ///< virtual media access not allowed
89 };
90
92 string portId; ///< port ID
93 KvmAccessMode allowedKvmAccess; ///< KVM permission
95 boolean allowedPowerControl; ///< Whether power control is permitted
96 };
97
98 /**
99 * Get KVM device
100 *
101 * @return KVM device
102 */
104
105 /**
106 * Get KVM channels
107 *
108 * @return List of available KVM channels
109 */
110 vector<KvmChannel> getKvmChannels();
111
112 /**
113 * Get power supplies
114 *
115 * @return List of power supplies, or empty list in case power supply monitoring is not supported
116 */
117 vector<PowerSupply> getPowerSupplies();
118
119 /**
120 * Get power device (PDU) manager
121 *
122 * @return PDU manager (if supported by device)
123 */
125
126 /**
127 * Get serial device (DSAM) manager
128 *
129 * @return DSAM manager (if supported by device)
130 */
132
133 /**
134 * Get port group manager
135 *
136 * @return Port group manager (if supported by device)
137 */
139
140 /**
141 * Get key set manager
142 *
143 * @return Key set manager
144 */
146
147 /**
148 * Get auto scan instance
149 *
150 * @return Auto scan instance (if supported by device)
151 */
153
154 /**
155 * Get downstream devices tiered to this base device via the Tier port
156 *
157 * @return Tiered devices
158 */
159 vector<TieredDevice> getTieredDevices();
160
161 /**
162 * Get permissions for tiered device ports
163 *
164 * @param sessionId
165 * @return Tier port permissions
166 */
167 vector<TierPortPermission> getTierPortPermissions(in int sessionId);
168
169 /**
170 * Get device security settings
171 *
172 * @return Security settings
173 */
175
176 /**
177 * Set device security settings
178 *
179 * @param settings New security settings
180 *
181 * @return 0 on success
182 * @return 1 if any setting was invalid
183 */
185
186 /**
187 * Get configured virtual media shares
188 *
189 * @return list of configured virtual media shares
190 */
191 vector<VirtualMediaShare> getVirtualMediaShares();
192
193 /**
194 * Configure virtual media shares
195 *
196 * Note: At most 10 shares can be configured
197 *
198 * @param shares New list of shares to be sent to KVM clients
199 *
200 * @return 0 on success
201 * @return 1 in case either the list was too long, or any value was invalid
202 */
203 int setVirtualMediaShares(in vector<VirtualMediaShare> shares);
204
205 /**
206 * Test a virtual media share
207 *
208 * @param share Configuration of the share
209 * @param username User name for accessing the share
210 * @param password Password for accessing the share
211 * @param errorDetails Additional error details in case of inaccessible VM share
212 *
213 * @return 0 on success
214 * @return 2 if SMB share can not be accessed
215 * @return 3 if image path does not exist on the share or is not a valid image
216 */
217 int testVirtualMediaShare(in VirtualMediaShare share, in string username, in string password, out string errorDetails);
218
219 /**
220 * Get current KVM access modes
221 *
222 * @return Access modes for local and remote operation
223 */
225
226 /**
227 * Get information about available CIM firmwares
228 *
229 * @return CIM firmware information
230 */
231 vector<CimFirmwareInfo> getAvailableCimFirmwareVersions();
232
233 /**
234 * Fetch the CIM firmware update history.
235 *
236 * @return List of CIM firmware update history entries
237 */
238 vector<CimUpdateHistoryEntry> getCimUpdateHistory();
239
240 /**
241 * Start CIM firmware update for selected CIMs
242 *
243 * @param ports List of ports to which the CIMs to be updated are connected
244 */
245 void startCimUpdate(in vector<KvmPort> ports);
246
247 /** Event: The KVM security settings have changed */
248 valueobject KvmSecuritySettingsChangedEvent extends event.UserEvent {
249 SecuritySettings oldSettings; ///< Settings before change
250 SecuritySettings newSettings; ///< Settings after change
251 };
252
253 /** Event: The list of configured virtual media shares has changed */
254 valueobject VirtualMediaSharesChangedEvent extends event.UserEvent {
255 vector<VirtualMediaShare> newShares; ///< Virtual media shares after change
256 };
257
258 /** Event: Access mode flags have changed */
259 valueobject KvmAccessModeChangedEvent extends idl.Event {
260 KvmAccessFlags oldAccessFlags; ///< Access modes before change
261 KvmAccessFlags newAccessFlags; ///< Access modes after change
262 };
263
264 /** Event: Firmware update base event */
265 valueobject CimFirmwareUpdateEvent extends event.UserEvent {
266 string oldVersion; ///< Firmware version the device is being upgraded from
267 string newVersion; ///< Firmware version the device is being upgraded to
268 };
269
270 /** Event: CIM firmware update started */
272
273 /** Event: CIM firmware updated successfully */
275
276 /** Event: Tiered devices have changed */
277 valueobject TieredDevicesChangedEvent extends idl.Event {
278 vector<TieredDevice> newDevices;
279 };
280 };
281}
282
283#endif //__RADM_KVM_MANAGER_IDL__
@ FACTORY_RESET
Trigger a factory reset.
@ ADMIN_PASSWORD_RESET
Trigger a reset of the admin password.
@ DISABLE_ALL_RESET
Disable local reset.
PowerDeviceManager getPowerDeviceManager()
Get power device (PDU) manager.
DsamDeviceManager getDsamDeviceManager()
Get serial device (DSAM) manager.
vector< CimFirmwareInfo > getAvailableCimFirmwareVersions()
Get information about available CIM firmwares.
vector< KvmChannel > getKvmChannels()
Get KVM channels.
AutoScan getAutoScan()
Get auto scan instance.
vector< CimUpdateHistoryEntry > getCimUpdateHistory()
Fetch the CIM firmware update history.
PortGroupManager getPortGroupManager()
Get port group manager.
vector< TieredDevice > getTieredDevices()
Get downstream devices tiered to this base device via the Tier port.
@ PRIORITY_REMOTE
Prioritize operation via remote KVM client.
@ PRIORITY_NONE
No prioritization, first operator gets control.
@ PRIORITY_LOCAL
Prioritize operation via locally attached input device.
SecuritySettings getSecuritySettings()
Get device security settings.
vector< TierPortPermission > getTierPortPermissions(in int sessionId)
Get permissions for tiered device ports.
KvmDevice getKvmDevice()
Get KVM device.
int testVirtualMediaShare(in VirtualMediaShare share, in string username, in string password, out string errorDetails)
Test a virtual media share.
int setVirtualMediaShares(in vector< VirtualMediaShare > shares)
Configure virtual media shares.
void startCimUpdate(in vector< KvmPort > ports)
Start CIM firmware update for selected CIMs.
int setSecuritySettings(in SecuritySettings settings)
Set device security settings.
KeySetManager getKeySetManager()
Get key set manager.
vector< PowerSupply > getPowerSupplies()
Get power supplies.
vector< VirtualMediaShare > getVirtualMediaShares()
Get configured virtual media shares.
@ VM_DENY
virtual media access not allowed
@ READ_WRITE
read-write virtual media access allowed
@ READ_ONLY
only read-only virtual media access allowed
KvmAccessFlags getKvmAccessMode()
Get current KVM access modes.
@ DENY
Neither viewing nor control are possible.
@ FULL_ACCESS
Both viewing and control are possible.
@ VIEW_ONLY
Only viewing is possible.
Basic IDL definitions.
Definition Event.idl:10
Radm Model.
Definition AccessPort.idl:8
Common base for all events.
Definition Event.idl:13
Event: CIM firmware updated successfully.
Event: Firmware update base event.
string oldVersion
Firmware version the device is being upgraded from.
string newVersion
Firmware version the device is being upgraded to.
Event: CIM firmware update started.
string imageVersion
Firmware version of update image.
string oldVersion
Previous firmware version.
boolean successful
Whether update was successful.
time timestamp
Timestamp when the update was started.
KvmAccessMode remoteAccess
Access mode for remote operation.
KvmAccessMode localAccess
Access mode for local operation.
Event: Access mode flags have changed.
KvmAccessFlags newAccessFlags
Access modes after change.
KvmAccessFlags oldAccessFlags
Access modes before change.
Event: The KVM security settings have changed.
SecuritySettings oldSettings
Settings before change.
SecuritySettings newSettings
Settings after change.
boolean kvmEncryption
Whether or not KVM client traffic is encrypted.
ResetPinMode resetPinMode
Handling of pin-hole reset on device.
boolean vmShare
Whether virtual media sharing is enabled.
boolean disableLocalPortOutput
Disable video output of locally attached monitors.
boolean urlDpa
Whether direct KVM port access via URL is allowed.
int pcShareIdleTimeout
PC share idle timeout (in seconds)
boolean pcShare
Whether PC sharing is enabled.
boolean sshDpa
Whether SSH direct port access is enabled.
ControlPriority controlPriority
Priority handling for simultaneous keyboard/mouse operation.
boolean allowIFrame
Allow embedding KVM GUI and HKC client as iframe in other web pages.
VirtualMediaPermission allowedVirtualMediaAccess
VM permission.
boolean allowedPowerControl
Whether power control is permitted.
KvmAccessMode allowedKvmAccess
KVM permission.
Event: Tiered devices have changed.
Data structure for a preconfigured virtual media ISO file on an SMB share.
string host
SMB server host name.
string shareName
SMB share name.
string imagePath
Path of ISO image on the SMB share.
boolean enableSMBv1
Whether to allow SMBv1.
Event: The list of configured virtual media shares has changed.
vector< VirtualMediaShare > newShares
Virtual media shares after change.